package top.callback.inf.beautyleaf;

import top.callback.inf.beautyleaf.common.IDResult;

/**
 * ID 生成器的顶层接口。每个生成的 ID 都和一个具体的标签(tag) 关联，使用不同标签获取的 ID 可能重复，但同一个标签下获得的 ID 保证唯一。
 *
 * @author Pengyu Gan
 * CreateDate 2021/3/23
 */
public interface IDGenerator {

    /**
     * 获取指定标签(tag)的下一个 ID
     * @param tagName 标签名称
     * @return ID
     */
    IDResult get(String tagName);

    /**
     * ID 生成器初始化时机
     * @return 初始化成功状态
     */
    boolean init();

}
